package com.BaoHua.demo.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import com.BaoHua.demo.webservice.traintime.ArrayOfString;
import com.BaoHua.demo.webservice.traintime.GetDetailInfoByTrainCodeResponse.GetDetailInfoByTrainCodeResult;
import com.BaoHua.demo.webservice.traintime.GetStationAndTimeByStationNameResponse.GetStationAndTimeByStationNameResult;
import com.BaoHua.demo.webservice.traintime.GetStationAndTimeDataSetByLikeTrainCodeResponse.GetStationAndTimeDataSetByLikeTrainCodeResult;
import com.BaoHua.demo.webservice.traintime.GetStationAndTimeDataSetByTrainCodeResponse.GetStationAndTimeDataSetByTrainCodeResult;
import com.BaoHua.demo.webservice.traintime.GetStationNameDataSetResponse.GetStationNameDataSetResult;
import com.BaoHua.demo.webservice.traintime.TrainTimeWebServiceSoap;

/**
 * 火车信息接口
* @ClassName: TrainTimeController  
* @author yanfa00027  
* @date 2018年10月17日  
*
 */
@RestController
public class TrainTimeController {

	@Autowired
	private TrainTimeWebServiceSoap train;
	
	/**
	 * 通过火车车次查询列车经由车站明细 
	* @Title: get_detail_info_by_train_code  
	* @param @param trainCode 车次代号字符串，空字符串默认上海到北京D32次
	* @param @return    参数  
	* @return GetDetailInfoByTrainCodeResult    返回类型  
	* @throws
	 */
	@GetMapping("/train/get_detail_info_by_train_code")
	public GetDetailInfoByTrainCodeResult get_detail_info_by_train_code(String trainCode) {
		return train.getDetailInfoByTrainCode(trainCode, "");
	}
	
	/**
	 * 通过发车站和到达站查询火车时刻表 
	* @Title: get_station_and_time_by_station_name  
	* @param @param startStation StartStation = 发车站，
	* @param @param arriveStation ArriveStation = 到达站（支持第一个字匹配模糊查询），空字符串默认发车站上海和到达站北京
	* @param @return    参数  
	* @return GetStationAndTimeByStationNameResult    返回类型  
	* @throws
	 */
	@GetMapping("/train/get_station_and_time_by_station_name")
	public GetStationAndTimeByStationNameResult get_station_and_time_by_station_name(String startStation,String arriveStation) {
		return train.getStationAndTimeByStationName(startStation, arriveStation, "");
	}
	
	/**
	 * 通过火车车次查询火车时刻表
	* @Title: getStationAndTimeByTrainCode  
	* @param @param trainCode 输入参数：车次代号字符串，空字符串默认上海到北京D32次
	* @param @return    参数  
	* @return ArrayOfString    返回类型  
	* @throws
	 */
	@GetMapping("/train/get_station_and_time_by_train_code")
	public ArrayOfString get_station_and_time_by_train_code(String trainCode) {
		return train.getStationAndTimeByTrainCode(trainCode, "");
	}
	
	/**
	 * 通过火车车次查询本火车时刻表（支持模糊查询）
	* @Title: get_station_and_time_data_set_by_like_train_code  
	* @param @param trainCode 输入参数：车次代号字符串（支持模糊查询），空字符串默认上海到北京D32次
	* @param @return    参数  
	* @return GetStationAndTimeDataSetByLikeTrainCodeResult    返回类型  
	* @throws
	 */
	@GetMapping("/train/get_station_and_time_data_set_by_like_train_code")
	public GetStationAndTimeDataSetByLikeTrainCodeResult get_station_and_time_data_set_by_like_train_code(String trainCode) {
		return train.getStationAndTimeDataSetByLikeTrainCode(trainCode, "");
	}
	
	/**
	 * 通过火车车次查询本火车时刻表
	* @Title: get_station_and_time_data_set_by_train_code  
	* @param @param trainCode 输入参数：车次代号字符串，空字符串默认上海到北京D32次
	* @param @return    参数  
	* @return GetStationAndTimeDataSetByTrainCodeResult    返回类型  
	* @throws
	 */
	@GetMapping("/train/get_station_and_time_data_set_by_train_code")
	public GetStationAndTimeDataSetByTrainCodeResult get_station_and_time_data_set_by_train_code(String trainCode) {
		return train.getStationAndTimeDataSetByTrainCode(trainCode, "");
	}
	
	/**
	 * 获得本火车时刻表Web Services的全部始发站名称
	* @Title: get_station_name  
	* @param @return    参数  
	* @return ArrayOfString    返回类型  
	* @throws
	 */
	@GetMapping("/train/get_station_name")
	public ArrayOfString get_station_name() {
		return train.getStationName();
	}
	
	/**
	 * 获得本火车时刻表Web Services支持的全部站台名称和拼音缩写
	* @Title: get_station_name_data_set  
	* @param @return    参数  
	* @return GetStationNameDataSetResult    返回类型  
	* @throws
	 */
	@GetMapping("/train/get_station_name_data_set")
	public GetStationNameDataSetResult get_station_name_data_set() {
		return train.getStationNameDataSet();
	}
}
